iT邦幫忙

0

【C++】Number Random

c++
  • 分享至 

  • xImage
  •  

這次來看到Number Random啦,也就是隨機亂數。

隨機亂數很常出現在面試的考題~ 所以我寫了兩種簡單的亂數程式。


學習目標: Number Random的實務

學習難度: ☆☆☆


首先是單一亂數~ 很簡單,只有srandrand要注意一下~

#include <iostream>

#include <ctime>

using namespace std;

int main()
{
	int num;
	
	cin>>num;
	
	srand(time(NULL)); //time(NULL)會輸出從1970年1月1號 0點0分0秒開始到現在的秒數
	
	cout<<rand()%num+0<<endl; //亂數從0開始直到num 
			
	return 0;
}

接下來是多個數的亂數

使用者可以輸入要亂數的數量(input),程式會輸出1到input範圍的數。

例如~輸入5,可能會輸出: 1, 3, 2, 4, 5。

比較特別的是它不會輸出相同的數字

老樣子用陣列去存亂數,然後再逐一檢查。

#include <iostream>

#include <ctime>

#include <stdlib.h>   

using namespace std;

void random(int input)
{
	srand(time(NULL));
	
	int i,j;
	
	int num[input];
	
	for(i=0;i<input;i++) //走訪亂數的數量 0~input 
	{
		do
		{	
		num[i]=rand()%(input)+1; /*這裡會進行亂數(1~input)*/
		
		for(j=0;j<i;j++)
		{
			if(num[i]==num[j]) /*如果有重複的亂數就跳出*/
			 	break;
		}
						
		}while(j!=i); //當j!=i時,意味有數字重複,因為重複時,剛剛的迴圈會break,不讓j繼續增值,所以要在做亂數 

		cout<<num[i]<<endl;
	}
}

int main()
{	
	int input;
	
	cin>>input; //輸入要亂數的數量
	
	random(input); //開始執行亂數
		
	return 0;
}

參考資料:

https://www.cplusplus.com/reference/cstdlib/rand/


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言